package com.mxpio.erp.common.order.service;

import com.mxpio.erp.common.enums.NoticeStatusEnums;
import com.mxpio.erp.common.jpa.model.Notice;
import com.mxpio.erp.common.order.policy.NoticeContext;
import com.mxpio.erp.common.order.policy.NoticePolicy;
import com.mxpioframework.common.vo.Result;
import com.mxpioframework.system.service.BaseService;

public interface NoticeService extends BaseService<Notice> {
	
	/**
	 * 通用的单据执行方法
	 * @param order
	 * @param policy
	 * @return
	 */
	NoticeContext execute(Notice notice, NoticePolicy policy);
	
	/**
	 * 更新单据状态
	 * @param notice
	 * @param noticeStatus
	 * @return
	 */
    Result<? extends Notice> updateNoticeStatus(Notice notice, NoticeStatusEnums.NoticeStatus noticeStatus);	
}
